package com.jxd.petMgr.service;

import com.jxd.petMgr.model.Pet;
import com.jxd.petMgr.util.PageUtil;

import java.util.List;
import java.util.Map;

/**
 * @author lzh
 * @version 1.0
 * @Description
 * @date 2021/11/5
 */
public interface IPetService {

    /**
     * 根据主人id和分页信息获得宠物
     * @param pageUtil
     * @param petOwnerId
     * @return 宠物对象集合
     */
    List<Pet> getPetByPetOwnerId(PageUtil pageUtil,int petOwnerId);

    /**
     * 根据主人id获取主人宠物的数量
     * @param petOwnerId
     * @return
     */
    int getPetByPetOwnerIdCount(int petOwnerId);


    /**
     *  得到所有宠物对象,以及所属商店
     * @return  宠物对象集合
     */
    List<Map<String,Object>> getAllPetHaveShopName(PageUtil pageUtil,Map<String,String> mapInfo);

    /**
     * 获得有宠物商店名的宠物数量
     * @return
     */
    int getAllPetHaveShopNameCount(Map<String,String> mapInfo);

//    /**
//     * 获得所有库存中宠物对象
//     * 商店id等于拥有者id且有
//     * 交易记录中有过的宠物即为库存中宠物
//     * @return 库存中对象集合
//     */
//    List<Pet> getAllPetInStock();
//
//
//    /**
//     * 获得所有新培育宠物对象
//     * 商店id等于拥有者id且有
//     * 交易记录中没有过的宠物即为新培育宠物
//     * @return 库存中对象集合
//     */
//    List<Pet> getAllPetNewBreed();
//
//    /**
//     * 获得所有宠物的数量
//     * @return
//     */
//    int getAllPetCount();

    /**
     * 获得宠物的所有种类
     * @return 宠物种类集合
     */
    List<String> getAllTypeName();

    /**
     * 根据宠物id获得宠物对象
     * @param id 宠物id
     * @return 宠物对象
     */
    Pet getPetById(int id);

}
